// import { getWebJsonMessage, regWebJsonMessage } from "@/api/http";
// import { Notification, Message } from 'element-ui'
// import { login } from '@/api/user'
// /*
//  * ******************************************** 消息推送****************************************
//  * *******************************************************************************************
// */
// var NoResult = '{B86254DE-8CDA-497D-A185-76432D03409E}';
// mainMessages = new CPushMessages()
// //初始化消息
// mainMessages.getMessages()
// function CPushMessages(lpfError) {

//     this.lstObject = new Array();
//     this.lpfError = lpfError;
//     this.getMessagesStr = function (check) {
//         var msgs = [];
//         for (var i = this.lstObject.length - 1; i >= 0; i--) {
//             var obj = this.lstObject[i];
//             var cls = false;
//             // console.log(obj.isClosed());

//             // 兼容IE11
//             try {
//                 cls = obj.isClosed()
//             }
//             catch (err) {
//                 cls = true;
//             }


//             if ((check != false) && cls) {
//                 this.lstObject.splice(i, 1);
//                 continue;
//             }
//             for (var j = 0; j < obj.messages.length; j++) {
//                 var msg = obj.messages[j];
//                 if (msgs.indexOf(msg) == -1)
//                     msgs.push(msg);
//             }
//         }
//         msgs.sort();
//         return msgs.join(",");
//     }

//     this.getMessages = function () {
//         var vPar = new ParamArr();
//         vPar.setStr("Msgs", this.getMessagesStr());
//         getWebJsonMessage(vPar).then(vPar => {
//             // 缓存的消息
//             if (vPar.getBool("Messages")) {
//                 for (var i = 0; i < vPar.getInt('Count'); i++) {
//                     var vTmp = new ParamArr(parseWebJson(vPar.getStr(i)));
//                     mainMessages.postMessageToObjects(vTmp);    // 广播消息包
//                 }
//             } else {
//                 mainMessages.postMessageToObjects(vPar);        // 广播消息包
//             }
//             // 下一次
//             mainMessages.getMessages();
//         }).catch(err => {
//             console.log(err);

//             Notification({
//                 title: '提示',
//                 message: '正在重新连接...',
//                 type: 'warning',
//                 duration: 0
//             })
//             setTimeout(() => {
//                 login(new ParamArr()).then(vPar => {
//                     //重新连接成功
//                     vPar.setMsgId(WM_IOCP_CONNECTED);
//                     mainMessages.postMessageToObjects(vPar, false);
//                     //获取消息
//                     mainMessages.getMessages();
//                     Message.closeAll()
//                     Notification.closeAll()
//                     Notification({
//                         title: '提示',
//                         message: '重新连接成功',
//                         type: 'success',
//                         duration: 2000
//                     })
//                 })

//             }, 5000);




//         })
//     }

//     /*
//      * 注册消息
//     */
//     this.regMessages = function (obj, messages, isReg) {
//         if (obj == undefined || messages == undefined || messages.length == 0)
//             return;
//         var msg1 = this.getMessagesStr();
//         if (obj.messages == undefined)
//             obj.messages = new Array();
//         for (var i = 0; i < messages.length; i++) {
//             var msg = messages[i];
//             if (obj.messages.indexOf(msg) == -1)
//                 obj.messages.push(msg);
//         }
//         if (this.lstObject.indexOf(obj) == -1)
//             this.lstObject.push(obj);

//         // 比较消息
//         var msg2 = this.getMessagesStr();
//         if (msg1 == msg2)
//             return;

//         if (isReg == undefined || isReg) {
//             // to server
//             var vPar = new ParamArr();
//             vPar.setStr("Msgs", msg2);
//             regWebJsonMessage(vPar)
//         }
//     }

//     this.delMessages = function (obj, messages) {
//         var index = this.lstObject.indexOf(obj);
//         if (index == -1 || obj.messages == undefined)
//             return;

//         var msg1 = this.getMessagesStr();

//         if (messages == undefined || messages.length == 0)
//             obj.messages = undefined;
//         else {
//             for (var i = 0; i < messages.length; i++) {
//                 j = obj.messages.indexOf(messages[i]);
//                 if (j != -1)
//                     obj.messages.splice(j, 1);
//             }
//         }
//         if (obj.messages == undefined || obj.messages.length == 0)
//             this.lstObject.splice(index, 1);

//         // 比较消息
//         var msg2 = this.getMessagesStr();
//         if (msg1 == msg2)
//             return;

//         // to server
//         var vPar = new ParamArr();
//         vPar.setStr("Msgs", msg2);
//         regWebJsonMessage(vPar)

//     }

//     this.postMessageToObjects = function (vPar, againReg) {
//         var bReg = false;
//         var msg1 = "";
//         var msg = vPar.getMsgId();
//         for (var i = this.lstObject.length - 1; i >= 0; i--) {
//             var obj = this.lstObject[i];
//             var cls = false
//             // 兼容IE11
//             try {
//                 cls = obj.isClosed();
//             } catch (err) {
//                 cls = true;
//             }

//             if (cls) {
//                 if (bReg == false) {
//                     msg1 = this.getMessagesStr(false);
//                 }
//                 this.lstObject.splice(i, 1);

//                 bReg = true;
//                 continue;
//             }
//             if (obj.messages.indexOf(msg) != -1 && obj.WndProc != undefined) {
//                 //解决因消息推送到页面，任何一个错误导致整个消息推送系统瘫痪的问题
//                 try {
//                     obj.WndProc(msg, vPar);
//                 } catch (e) {
//                     //打印错误
//                     console.error(e);
//                 }

//             }
//         }

//         if (bReg && (againReg == undefined || againReg != false)) {
//             var msg2 = this.getMessagesStr();
//             if (msg1 != msg2) {
//                 // to server
//                 var vPar = new ParamArr();
//                 vPar.setStr("Msgs", msg2);
//                 regWebJsonMessage(vPar)
//             }
//         }
//     }
//     this.getPostMessage = function (msg) {
//         return this.msgMap.get(msg) || ''
//     }
// }
// // mainMessagesReg(new CMainMessages(), [WM_IOCP_CONNECT, WM_WAITINPUT, WM_BACKUP_SERVER, WM_BACKUP_SWITCHB, WM_BACKUP_SWITCHM, WM_DISTRIBUTE_SERVER], false);
// // function CMainMessages() {
// //     this.currentPath = function () {
// //         return path
// //     }
// //     this.WndProc = function (msg, vPar) {
// //         console.log(vPar);

// //     }
// // }
